package com.liuhuanss.voiceprint.mapper;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.liuhuanss.voiceprint.entity.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.Optional;

/**
 * 用户Mapper接口
 * 
 * @author liuhuanss
 * @version 1.0
 */
@Mapper
public interface UserMapper extends BaseMapper<User> {

    /**
     * 根据用户名查找用户
     * 
     * @param username 用户名
     * @return 用户信息
     */
    User findByUsername(@Param("username") String username);

    /**
     * 根据邮箱查找用户
     * 
     * @param email 邮箱
     * @return 用户信息
     */
    User findByEmail(@Param("email") String email);

    /**
     * 根据声纹特征ID查找用户
     * 
     * @param voiceprintFeatureId 声纹特征ID
     * @return 用户信息
     */
    User findByVoiceprintFeatureId(@Param("voiceprintFeatureId") String voiceprintFeatureId);

    /**
     * 检查用户名是否存在
     * 
     * @param username 用户名
     * @return 是否存在
     */
    boolean existsByUsername(@Param("username") String username);

    /**
     * 检查邮箱是否存在
     * 
     * @param email 邮箱
     * @return 是否存在
     */
    boolean existsByEmail(@Param("email") String email);
}